[t:/]$ 지식_

동기 응답 대기를 클라로 떠넘기기 -_-?

2014/12/16

A -> B -> C

A : 클라(모바일)

B : 고부하 API 서버 (H/W 적음)

C : 로그 서버 (H/W 많음)

A가 B에 API를 요청하면 B가 C에 로그를 쏘고 응답을 기다린 후 C로 응답이 나가는데 이게 좀 걸린다. 고부하 상황이다. (물론 B가 응답부터하고 C에 로그를 쏠 수도 있긴 한데 http request life cycle은 그대로 상존한다.)

다행히 B-C 구간은 보안 데이터가 없으며 A가 B에게 따로 받을 데이터는 없다.

솔루션 : B는 A로 헤더에 redirect를 넣어 응답하도록 처리한다.

그러면 A가 B를 호출하면 바로 응답을 받으면서 A가 C를 리다이렉트로 호출한다. 즉, C에 대한 응답 대기를 A (클라)가 기다린다. 부하를 떠넘긴 것인데, B 입장에서는 꽤나 수고로운 짐을 분산한 것이다. 대지여 하늘이여 부하를 나눠가져가다오~

단말 입장에서는 ajax콜이나 state를 고려한 귀찮은 프로그래밍을 떠올릴 수도 있지만.. 실제로는 img tag에 의해 fire and forgot 방식이 된다. js를 추가하긴 어려운 상황이다.

단순하고, 빠르다.









[t:/] is not "technology - root". dawnsea, rss